home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / oper_sys / emerald / emrldsys.lha / Language / Compiler / Builtins / Integer.m < prev    next >
Encoding:
Text File  |  1990-08-16  |  2.6 KB  |  89 lines

  1. % @(#)Integer.m    1.1  3/6/87
  2. %
  3. export _IntegerObject to "Builtins"
  4.  
  5. const _IntegerObject == immutable object _IntegerObject
  6.   export getSignature, create
  7.   const IntegerType == immutable type IntegerType
  8.     function + [o : Integer] -> [r : Integer]
  9.       % r <- self + o
  10.     function - [o : Integer] -> [r : Integer]
  11.       % r <- self - o
  12.     function * [o : Integer] -> [r : Integer]
  13.       % r <- self * o
  14.     function / [o : Integer] -> [r : Integer]
  15.       % r <- self / o
  16.     function # [o : Integer] -> [r : Integer]
  17.       % r <- self % o
  18.     function > [o : Integer] -> [r : Boolean]
  19.       % r <- self > o
  20.     function >= [o : Integer] -> [r : Boolean]
  21.       % r <- self >= o
  22.     function < [o : Integer] -> [r : Boolean]
  23.       % r <- self < o
  24.     function <= [o : Integer] -> [r : Boolean]
  25.       % r <- self <= o
  26.     function = [o : Integer] -> [r : Boolean]
  27.       % r <- self = o
  28.     function != [o : Integer] -> [r : Boolean]
  29.       % r <- self != o
  30.     function asString -> [r : String]
  31.       % s is set to a string with no leading 0's, decimal rep.
  32.     function ~ -> [r : Integer]
  33.       % r <- negate self
  34.     function asReal -> [ r : Real ]
  35.       % r <- self as a real
  36.   end IntegerType
  37.   function getSignature -> [result : Signature]
  38.     result <- IntegerType
  39.   end getSignature
  40.   function create [rep : String] -> [result : IntegerType]
  41.     result <- immutable object anInteger
  42.       export +, -, *, /, #, >, >=, <, <=, =, !=, asString, ~, asReal
  43.       function + [o : Integer] -> [r : Integer]
  44.     primitive 006 [r] <- [o]
  45.       end +
  46.       function - [o : Integer] -> [r : Integer]
  47.     primitive 106 [r] <- [o]
  48.       end -
  49.       function * [o : Integer] -> [r : Integer]
  50.     primitive 206 [r] <- [o]
  51.       end *
  52.       function / [o : Integer] -> [r : Integer]
  53.     primitive 306 [r] <- [o]
  54.       end /
  55.       function # [o : Integer] -> [r : Integer]
  56.     primitive 406 [r] <- [o]
  57.       end #
  58.       function > [o : Integer] -> [r : Boolean]
  59.     primitive 506 [r] <- [o]
  60.       end >
  61.       function >= [o : Integer] -> [r : Boolean]
  62.     primitive 606 [r] <- [o]
  63.       end >=
  64.       function < [o : Integer] -> [r : Boolean]
  65.     primitive 706 [r] <- [o]
  66.       end <
  67.       function <= [o : Integer] -> [r : Boolean]
  68.     primitive 806 [r] <- [o]
  69.       end <=
  70.       function = [o : Integer] -> [r : Boolean]
  71.     primitive 906 [r] <- [o]
  72.       end =
  73.       function != [o : Integer] -> [r : Boolean]
  74.     primitive 1006 [r] <- [o]
  75.       end !=
  76.       function asString -> [r : String]
  77.     primitive 1106 [r] <- []
  78.       end asString
  79.       function ~ -> [r : Integer]
  80.     primitive 1206 [r] <- []
  81.       end ~
  82.       function asReal -> [r : Real]
  83.     primitive 1306 [r] <- []
  84.       end asReal
  85.     end anInteger
  86.   end create
  87. end _IntegerObject
  88.